Video chat picture-in-picture

ABSTRACT

A computer-implemented technique includes initiating, at a computing device having one or more processors, a video chat session with another computing device via a network. The technique includes displaying, at the computing device, a video chat window in response to initiating the video chat session, the video chat window displaying a video stream received from the other computing device. The technique includes detecting, at the computing device, a lack of interaction between a user of the computing device and the video chat window. The technique also includes in response to detecting the lack of interaction between the user and the video chat window, at least one of automatically resizing and automatically repositioning, at the computing device, the video chat window.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/208,909, filed Mar. 13, 2014. The disclosure of the above applicationis incorporated herein by reference in its entirety.

FIELD

The present disclosure relates generally to video chat software and,more particularly, to techniques for automaticallyresizing/repositioning a video chat window for multitasking purposesbased on a user's interaction with the video chat window.

BACKGROUND

The background description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Work of thepresently named inventors, to the extent it is described in thisbackground section, as well as aspects of the description that may nototherwise qualify as prior art at the time of filing, are neitherexpressly nor impliedly admitted as prior art against the presentdisclosure.

Users participating in video chats often are multitasking and usingother software. For example, the user may be viewing a text document ora website while also participating in the video chat. This othersoftware, however, may block the video chat window unlessresizing/repositioning occurs. Users, therefore, either allow the videochat window to move to the background (behind the other software) ormanually resize/reposition the video chat window (and, in some cases,the other software) such that both can be viewed. Having a video chatoperating in the background is undesirable due to the lack of a visualconnection between users. Having to manually resize/reposition the videochat window, on the other hand, may be difficult and time consuming.

SUMMARY

A computer-implemented technique is presented. The technique can includeinitiating, at a computing device having one or more processors, a videochat session with another computing device via a network, the video chatsession being initiated in a web browser executing at the computingdevice. The technique can include displaying, at the computing device, avideo chat window in the web browser in response to initiating the videochat session, the video chat window displaying a video stream receivedfrom the other computing device. The technique can include detecting, atthe computing device, a first action by the user indicative of a lack ofinteraction with the video chat window, the first action including atleast one of: (i) input by the user to the computing device that causesa new web browser tab to be displayed at the computing device, and (ii)a lack of eye contact by the user on the video chat window for longerthan a first predetermined period based on video data captured by avideo camera associated with the computing device. The technique caninclude in response to detecting the first action, automaticallyshrinking and repositioning, at the computing device, the video chatwindow to obtain a modified video chat window. The technique can includedetecting, at the computing device, a second action by the userindicative of interaction with the video chat window, the second actionincluding at least one of: (i) a lack of input by the user via at leastone of a keyboard, a mouse, and a touch display associated with thecomputing device for longer than a second predetermined period, (ii)voice data captured by a microphone associated with the computing devicefor longer than a third predetermined period, and (iii) eye contact bythe user on the modified video chat window for longer than a fourthpredetermined period based on the video data captured by the videocamera. The technique can also include in response to detecting thesecond action, automatically enlarging and repositioning, at thecomputing device, the modified video chat window to obtain the videochat window.

Another computer implemented is also presented. The technique caninclude initiating, at a computing device having one or more processors,a video chat session with another computing device via a network. Thetechnique can include displaying, at the computing device, a video chatwindow in response to initiating the video chat session, the video chatwindow displaying a video stream received from the other computingdevice. The technique can include detecting, at the computing device, alack of interaction between a user of the computing device and the videochat window. The technique can include in response to detecting the lackof interaction between the user and the video chat window, at least oneof automatically resizing and automatically repositioning, at thecomputing device, the video chat window.

In some embodiments, the lack of interaction includes a lack of eyecontact by the user on the video chat window for longer than a firstpredetermined period.

In other embodiments, the technique further includes detecting the lackof eye contact by the user on the video chat window based on the videodata captured by the video camera with respect to the computing device.

In some embodiments, at least one of automatically resizing andautomatically repositioning the video chat window further includes: inresponse to detecting the lack of interaction between the user and thevideo chat window, automatically shrinking, at the computing device, thevideo chat window to obtain a modified video chat window, andautomatically repositioning, at the computing device, the modified videochat window to a corner of the display.

In other embodiments, the technique further includes: detecting, at thecomputing device, interaction between the user and the modified videochat window, and in response to detecting the interaction between theuser and the modified video chat window, automatically enlarging themodified video chat window to obtain the video chat window.

In some embodiments, the interaction includes a lack of input by theuser via at least one of a keyboard, a mouse, and the display associatedwith the computing device for longer than a second predetermined period.

In other embodiments, the interaction includes voice data captured by amicrophone associated with the computing device for longer than a thirdpredetermined period.

In some embodiments, the interaction includes eye contact by the user onthe video chat window for longer than a fourth predetermined periodbased on video data captured by a video camera associated with thecomputing device.

In other embodiments, the video chat session is implemented by a videochat application extension or add-on in a web browser executing at thecomputing device, wherein the video chat window is displayed in the webbrowser.

In some embodiments, the lack of interaction includes input by the userto the computing device that causes a new web browser tab to bedisplayed at the computing device.

A computing device is also presented. The computing device can include avideo camera, a communication device, one or more processors, and adisplay. The video camera can be configured to capture video data withrespect to the computing device. The communication device can beconfigured for communication with another computing device via anetwork. The one or more processors can be configured to initiate avideo chat session with the other computing device. The one or moreprocessors can be configured to output a video chat window at thedisplay in response to initiating the video chat session, the video chatwindow configured to display a video stream received from the othercomputing device. The one or more processors can be configured to detecta lack of interaction between a user of the computing device and thevideo chat window. The one or more processors can also be configured toin response to detecting the lack of interaction between the user andthe video chat window, at least one of automatically resize andautomatically reposition the video chat window. The display can beconfigured to display the video chat window.

In some embodiments, the lack of interaction includes a lack of eyecontact by the user on the video chat window for longer than a firstpredetermined period.

In other embodiments, the one or more processors are further configuredto detect the lack of eye contact by the user on the video chat windowbased on the video data captured by the video camera.

In some embodiments, the one or more processors are configured to: inresponse to detecting the lack of interaction between the user and thevideo chat window, automatically shrink the video chat window to obtaina modified video chat window, wherein the display is further configuredto display the modified video chat window, and automatically repositionthe modified video chat window to a corner of the display.

In other embodiments, the one or more processors are further configuredto: detect interaction between the user and the modified video chatwindow; and in response to detecting the interaction between the userand the modified video chat window, automatically enlarge the modifiedvideo chat window to obtain the video chat window.

In some embodiments, the interaction includes a lack of input by theuser via at least one of a keyboard associated with the computingdevice, a mouse associated with the computing device, and the displaywhen the display is a touch display, for longer than a secondpredetermined period.

In other embodiments, the interaction includes voice data captured by amicrophone associated with the computing device for longer than a thirdpredetermined period.

In some embodiments, the interaction includes eye contact by the user onthe video chat window for longer than a fourth predetermined periodbased on the video data captured by the video camera.

In other embodiments, the video chat session is implemented by a videochat application extension or add-on in a web browser executing at thecomputing device, wherein the video chat window is displayed in the webbrowser, and wherein the lack of interaction includes input by the userto the computing device that causes a new web browser tab to bedisplayed at the computing device.

Further areas of applicability of the present disclosure will becomeapparent from the detailed description provided hereinafter. It shouldbe understood that the detailed description and specific examples areintended for purposes of illustration only and are not intended to limitthe scope of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will become more fully understood from thedetailed description and the accompanying drawings, wherein:

FIG. 1 is a diagram of a computing network including an examplecomputing device according to some implementations of the presentdisclosure;

FIG. 2 is a functional block diagram of the example computing device ofFIG. 1;

FIG. 3 is a view of a display of the example computing device of FIG. 1.displaying a web browser having a modified video chat window; and

FIG. 4 is a flow diagram of an example technique forresizing/repositioning a video chat window based on a user's interactionwith the video chat window according to some implementations of thepresent disclosure.

DETAILED DESCRIPTION

As previously discussed, having to manually resize/reposition a videochat window in order for a user to multitask is an inconvenient and timeconsuming process. Accordingly, video chat picture-in-picture (PIP)techniques are presented. The term PIP refers to a smaller video window,e.g., a video chat window, operating within another larger window, e.g.,a web browser window. The techniques of the present disclosure includeautomatically resizing/repositioning a video chat window based on auser's interaction (or lack of interaction) with the video chat windowand without any manual resizing/repositioning or other similar input bythe user. These techniques can be particularly useful for the user'smultitasking purposes, e.g., video chatting and web browsing or documentediting simultaneously.

Referring now to FIG. 1, a diagram of an example computing system 100 isillustrated. The computing system 100 can include computing devices 104a and 104 b (collectively “computing devices 104”) that are operated byusers 108 a and 108 b (collectively “users 108”), respectively. Thecomputing devices 104 can be configured to communicate with each othervia a network 112. Examples of the computing devices 104 include desktopcomputers, laptop computers, tablet computers, and mobile phones. Whiletwo computing devices 104 are illustrated, it should be appreciated thatthe computing network 100 can include three or more computing devices104 that can communicate with each other for a group video chat session.The network 112 can include a local area network (LAN), a wide areanetwork (WAN), e.g., the Internet, or a combination thereof.

In some implementations, the computing devices 104 include peripheralcomponents. The computing devices 104 include displays 116 a and 116 b(collectively “displays 116”) having display areas 120 a and 120 b(collectively “display areas 120”), respectively. In someimplementations, the displays 116 are touch displays. The computingdevices 104 also include video cameras 124 a and 124 b (collectively“video cameras 124”). The video cameras 124 can each be configured tocapture video data with respect to its respective computing device 104.For example, the video cameras 124 can be configured to capture videodata of the users 108. The computing devices 104 can also include otherinput devices, such as keyboards 128 a and 128 b (collectively“keyboards 128”) and mice 132 a and 132 b (collectively “mice 132”).

Referring now to FIG. 2, a functional block diagram of one of theexample computing devices 104 is illustrated. While a single computingdevice 104 and its associated user 108 and components 116-132 arereferred to from hereon, it should be appreciated that both computingdevices 104 can have the same or similar configuration and thus canoperate in the same or similar manner. The computing device 104 caninclude a communication device 200, a processor 204, and a memory 208.The computing device 104 can also include the display 116, the videocamera 124, the keyboard 128, and the mouse 132 (collectively “userinterface devices 212”). The user interface devices 212 are configuredfor interaction with the user 108. In some implementations, the userinterface 212 can further include a microphone 220 and a speaker 224.

The communication device 200 is configured for communication between theprocessor 204 and other devices, e.g., the other computing device 104,via the network 112. The communication device 200 can include anysuitable communication components, such as a transceiver. Specifically,the communication device 200 can transmit a request to initiate thevideo chat session and can provide a response to this request to theprocessor 204. The communication device 200 can then handle transmissionand receipt of the various video streams between the computing devices200 during the video chat session. The memory 208 can be configured tostore information at the computing device 104, such as video chatsettings for the user 108, which are discussed in greater detail below.The memory 208 can be any suitable storage medium (flash, hard disk,etc.).

The processor 204 can be configured to control operation of thecomputing device 104. It should be appreciated that the term “processor”as used herein can refer to both a single processor and two or moreprocessors operating in a parallel or distributed architecture. Theprocessor 204 can be configured to perform general functions including,but not limited to, loading/executing an operating system of thecomputing device 104, controlling communication via the communicationdevice 200, and controlling read/write operations at the memory 208. Theprocessor 204 can also be configured to perform specific functionsrelating to at least a portion of the present disclosure including, butnot limited to, loading/executing web browser software at the computingdevice 104, initiating/controlling the video chat session, andcontrolling the display 116, including resizing/repositioning the videochat window, which is described in greater detail below with referenceto FIG. 3.

Referring now to FIG. 3, a diagram of the display 116 of one of theexample computing devices 104 is illustrated. The computing device 104can load and execute a web browser 304, which is illustrated as a windowwith respect to the display area 120 of the display 116. While the webbrowser 304 is specifically discussed, it should be appreciated that thevideo chat session could be initiated via an operating system or anotherapplication, such as a standalone video chat application. The webbrowser 304 may not occupy the entire display area 120, e.g., due totoolbars or other borders (not shown). The web browser 304 is configuredto initiate the video chat session, which includes displaying a videochat window 308. As illustrated, the video chat window 308 occupies theentirety of the web browser 304. It should be appreciated, however, thatthe video chat window 308 could occupy a majority of, but less than theentire web browser 304, e.g., due to toolbars or other borders. Thevideo chat window 308 can also be referred to as a full or maximizedvideo chat window 308. In one implementation, the video chat window 308can be a default configuration in response to initiating the video chatsession.

A modified video chat window 312 is also illustrated. The modified videochat window 312 represents a resized and repositioned version of thevideo chat window 308. As illustrated, the video chat window 308 hasbeen shrunk and repositioned to a bottom right corner of the web browser304 to obtain the modified video chat window 312. It should beappreciated that other configurations for the modified video chat window312 could be implemented, such as smaller/top right, smaller/top left,or smaller/bottom left. In one implementation, the specificconfiguration of the modified video chat window 312 can be customizableby the user 108. For example, the user 108 may prefer having themodified video chat window 312 in a specific size and/or positionconfiguration to optimize their multitasking efficiency or because ofvisual impairments of the user 108. In some implementations, themodified video chat window 312 can also follow transitions by the user108 to other tabs of the web browser 304, which is described in greaterdetail below. The term “tab” can refer to another web page beingdisplayed within a single web browser window, and the various tabs couldbe displayed along a toolbar or border, e.g., at a top of the webbrowser 304.

Referring again to FIG. 2 and with continued reference to FIG. 3, theprocessor 204 can load and execute the web browser 304. Via the webbrowser 304, the user 108 can initiate the video chat session. Forexample, the user 108 can select an option within the web browser 304 toinitiate the video chat session. This can be referred to as a requestfrom the user 108 to initiate the video chat session. In response toreceiving this request, the processor 204 can initiate the video chatsession with the other computing device, e.g., computing device 104 b,which can include a handshake operation and then transmitting/receivingrespective video streams via the communication device 200. The processor204 can then output the received video stream in the video chat window308 via the display 116. As previously discussed, the defaultconfiguration could be the full or maximized video chat window 308.

During the video chat session, the user 108 can interact with the videochat window 308 in different ways. In some cases, the user 108 may wishto multitask during the video chat session. For example, the user 108may wish to view a web page during the video chat session. In thesecases, the user 108 can perform actions that are indicative of a lack ofinteraction with the video chat window 308. One example action that isindicative of a lack of interaction is the user 108 providing input toopen a new tab of the web browser 304. In some cases, the user 108 couldopen a new window of the web browser 304, and the video chat sessioncould then be transferred to the new web browser window. Another exampleaction that is indicative of a lack of interaction is a lack of eyecontact with the video chat window 308 for longer than a firstpredetermined period. The eye contact by the user 108 could be detectedby the processor 204 by analyzing video data captured by the videocamera 124 using suitable video processing algorithms. The firstpredetermined period could be, for example, a few seconds, and in someimplementations, could be specified by the user 108.

It should be appreciated that the phrases “lack of interaction,” “lackof eye contact,” and “lack of input” as used herein can refer to nointeraction, no eye contact, and no input, respectively, or to levels ofinteraction, eye contact, and input less than a specific threshold. Forexample only, a lack of eye contact could be detected even though theuser 108 makes split-second eye contact with the specific video chatwindow during the respective predetermined period. Similarly, forexample only, a lack of input could be detected even though the user 108makes a single input, such as an accidental input, via one or more ofthe user input devices 212 during the respective predetermined period.

In response to detecting at least one of these actions indicative of alack of interaction with the video chat window 308, the processor 204can automatically resize and/or reposition the video chat window 308 toobtain the modified video chat window 312. As shown in FIG. 3, theprocessor 204 can shrink the video chat window 308 and reposition thevideo chat window 308 to the bottom right corner of the web browser 304to obtain the modified video chat window 312. In some implementations,the processor 204 could shrink and not reposition the video chat window308 to obtain the modified video chat window 312. In otherimplementations where the video chat window 308 is not full ormaximized, the processor 204 could reposition and not shrink the videochat window 308 to obtain the modified video chat window 312. If theaction by the user 108 was opening a new tab in the web browser 304, themodified video chat window 312 could also be displayed in the new tab ofthe web browser 304, effectively following the user 108 across thevarious tabs. In one implementation, the video chat session isconfigured via an extension or add-on to the web browser 304. In thismanner, manipulation of the modified video chat window 312 acrossdifferent tabs can be easily and seamlessly achieved.

During the video chat session, the user 108 may wish to interact withthe modified video chat window 312 to a greater degree. For example, theuser 108 may be done with multitasking. In these cases, the user 108 canperform other actions indicative of interaction with the modified videochat window 312. One example of these actions is a lack ofphysical/touch input by the user 108 for longer than a secondpredetermined period. This physical/touch input by the user 108 caninclude input via the keyboard 128, the mouse 132, or the display 116when the display 116 is a touch display. Like the first predeterminedperiod, the second predetermined period could be, for example, a fewseconds, and in some implementations, could be specified by the user108. The lack of a physical/touch input can indicate that the user 108is done multitasking. Another example of these actions is detection ofvoice data, which is captured by the microphone 220, for longer than athird predetermined period. The detection of voice data by themicrophone 220 indicates that the user 108 is providing speech input andis thus interacting with the modified video chat window 312.

The processor 204 can receive the voice data and process the voice datausing suitable voice processing algorithms to detect the speech input bythe user 108, e.g., as opposed to other background noise or the otheruser's voice being output by the speaker 224 as part of the video chatsession. While this action is described as voice data for longer thanthe third predetermined period, it should be appreciated that there canbe short gaps (silence) during the voice data, which could correspond tobreaks between words or sentences. Like the first and secondpredetermined periods, the third predetermined period could be, forexample, a few seconds, or in some implementations, could be specifiedby the user 108. Another one of these actions can be eye contact withthe modified video chat window 312 for longer than a fourthpredetermined period, which can be detected by the processor 204 usingthe video camera 124 as described above. Like the first, second, andthird predetermined periods, the fourth predetermined period could be,for example, a few seconds, or in some implementations, could bespecified by the user 108. In one implementation, the first, second,third, and fourth predetermined periods could all be the same.

In response to detecting at least one of these actions indicative ofinteraction by the user 108 with the modified video chat window 312, theprocessor 204 can automatically resize and/or reposition the modifiedvideo chat window 312 to obtain the video chat window 308. As shown inFIG. 3, the processor 204 can enlarge the modified video chat window 312and reposition the modified video chat window 312 to the center of theweb browser 304 to obtain the video chat window 308. In someimplementations, the processor 204 could enlarge and not reposition themodified video chat window 312 to obtain the video chat window 308. Inother implementations where the video chat window 308 was not previouslyfull or maximized, the processor 204 could reposition and not enlargethe modified video chat window 312 to obtain the video chat window 308.

While specific actions indicative of interaction and lack of interactionby the user 108 with the video chat windows 308, 312 are discussedherein, it should be appreciated that other suitable actions could bedetected to determine the interaction and/or lack of interaction by theuser 108 with the video chat windows 308, 312. Furthermore, in someimplementations, the automatic resizing/repositioning feature could beselectively disabled. For example only, when a screen share feature ofthe video chat session is being utilized, the automaticresizing/repositioning feature could be disabled to prevent interruptionwith the screen share. In other words, the screen share feature is muchless useable via a smaller modified video chat window 312 compared to alarger video chat window 308. For example, the screen share feature mayhave a default configuration of the full or maximized video chat window308.

Referring now to FIG. 4, a flow diagram of an example technique 400 forautomatically resizing/repositioning the video chat window 308 based oninteraction by the user 108 a with the video chat window 308 isillustrated. At 404, computing device 104 a can initiate the video chatsession with computing device 104 b via the network 112. In oneimplementation, the video chat session can be initiated in a web browser304 executing at the computing device 104 a. At 408, computing device104 a can display the video chat window 308 in the web browser 304 inresponse to initiating the video chat session. The video chat window 308can display a video stream received from the other computing device 104b. At 412, computing device 104 a can detect a first action by the user108 a indicative of a lack of interaction with the video chat window308. Examples of the first action include at least one of: (i) input bythe user 108 a to the computing device 108 a that causes a new webbrowser tab to be displayed at the computing device 104 a, and (ii) alack of eye contact by the user 108 a on the video chat window 308 forlonger than a first predetermined period based on video data captured bya video camera 124 a associated with the computing device 104 a.

In response to detecting the first action, the computing device 104 acan automatically shrink and reposition the video chat window 308 toobtain the modified video chat window 312 at 416. In other words, thecomputing device 104 a can automatically shrink and reposition the videochat window 308 directly in response to detecting the lack of userinteraction with the video chat window 308 and without any user actionor intervention. In this manner, the video chat window 308 can be shrunkand repositioned to obtain the modified video chat window 312 withoutany explicit/manual action by the user 108 a, thereby providing aseamless transition from the video chat window 308 to the modified videochat window 312 based only on the user's lack of interaction with thevideo chat window 308. This seamless transition can allow the user 108 ato easily multitask during the video chat session. This seamlesstransition can also be performed when enlarging and repositioning themodified video chat window 312 to obtain the video chat window 308,which is described in greater detail below.

At 420, computing device 104 a can detect a second action by the user108 a indicative of interaction with the modified video chat window 312.Examples of the second action include at least one of: (i) a lack ofinput by the user 108 a via at least one of a keyboard 128 a, a mouse132 a, and a touch display associated with the computing device 104 afor longer than a second predetermined period, (ii) voice data capturedby the microphone 220 associated with the computing device 104 a forlonger than a third predetermined period, and (iii) eye contact by theuser 108 a on the modified video chat window 312 for longer than afourth predetermined period based on the video data captured by thevideo camera 124 a. At 424, computing device 104 a can automaticallyenlarge and reposition the modified video chat window 312 in response todetecting the second action to obtain the video chat window 308. Thetechnique 400 can then end or return to 404 for one or more additionalcycles.

Example embodiments are provided so that this disclosure will bethorough, and will fully convey the scope to those who are skilled inthe art. Numerous specific details are set forth such as examples ofspecific components, devices, and methods, to provide a thoroughunderstanding of embodiments of the present disclosure. It will beapparent to those skilled in the art that specific details need not beemployed, that example embodiments may be embodied in many differentforms and that neither should be construed to limit the scope of thedisclosure. In some example embodiments, well-known procedures,well-known device structures, and well-known technologies are notdescribed in detail.

The terminology used herein is for the purpose of describing particularexample embodiments only and is not intended to be limiting. As usedherein, the singular forms “a,” “an,” and “the” may be intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. The term “and/or” includes any and all combinations of one ormore of the associated listed items. The terms “comprises,”“comprising,” “including,” and “having,” are inclusive and thereforespecify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof. The method steps,processes, and operations described herein are not to be construed asnecessarily requiring their performance in the particular orderdiscussed or illustrated, unless specifically identified as an order ofperformance. It is also to be understood that additional or alternativesteps may be employed.

Although the terms first, second, third, etc. may be used herein todescribe various elements, components, regions, layers and/or sections,these elements, components, regions, layers and/or sections should notbe limited by these terms. These terms may be only used to distinguishone element, component, region, layer or section from another region,layer or section. Terms such as “first,” “second,” and other numericalterms when used herein do not imply a sequence or order unless clearlyindicated by the context. Thus, a first element, component, region,layer or section discussed below could be termed a second element,component, region, layer or section without departing from the teachingsof the example embodiments.

As used herein, the term module may refer to, be part of, or include anApplication Specific Integrated Circuit (ASIC), an electronic circuit; acombinational logic circuit; a field programmable gate array (FPGA), aprocessor (shared, dedicated, or group) that executes code, or a processexecuted by a distributed network of processors and storage in networkedclusters or datacenters, other suitable components that provide thedescribed functionality; or a combination of some or all of the above,such as in a system-on-chip. The term module may include memory (shared,dedicated, or group) that stores code executed by the one or moreprocessors.

The term code, as used above, may include software, firmware, byte-codeand/or microcode, and may refer to programs, routines, functions,classes, and/or objects. The term shared, as used above, means that someor all code from multiple modules may be executed using a single(shared) processor. In addition, some or all code from multiple modulesmay be stored by a single (shared) memory. The term group, as usedabove, means that some or all code from a single module may be executedusing a group of processors. In addition, some or all code from a singlemodule may be stored using a group of memories.

The techniques described herein may be implemented by one or morecomputer programs executed by one or more processors. The computerprograms include processor-executable instructions that are stored on anon-transitory tangible computer readable medium. The computer programsmay also include stored data. Non-limiting examples of thenon-transitory tangible computer readable medium are nonvolatile memory,magnetic storage, and optical storage.

Some portions of the above description present the techniques describedherein in terms of algorithms and symbolic representations of operationson information. These algorithmic descriptions and representations arethe means used by those skilled in the data processing arts to mosteffectively convey the substance of their work to others skilled in theart. These operations, while described functionally or logically, areunderstood to be implemented by computer programs. Furthermore, it hasalso proven convenient at times to refer to these arrangements ofoperations as modules or by functional names, without loss ofgenerality.

Unless specifically stated otherwise as apparent from the abovediscussion, it is appreciated that throughout the description,discussions utilizing terms such as “processing” or “computing” or“calculating” or “determining” or “displaying” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system memories orregisters or other such information storage, transmission or displaydevices.

Certain aspects of the described techniques include process steps andinstructions described herein in the form of an algorithm. It should benoted that the described process steps and instructions could beembodied in software, firmware or hardware, and when embodied insoftware, could be downloaded to reside on and be operated fromdifferent platforms used by real time network operating systems.

The present disclosure also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored on acomputer readable medium that can be accessed by the computer. Such acomputer program may be stored in a tangible computer readable storagemedium, such as, but is not limited to, any type of disk includingfloppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-onlymemories (ROMs), random access memories (RAMs), EPROMs, EEPROMs,magnetic or optical cards, application specific integrated circuits(ASICs), or any type of media suitable for storing electronicinstructions, and each coupled to a computer system bus. Furthermore,the computers referred to in the specification may include a singleprocessor or may be architectures employing multiple processor designsfor increased computing capability.

The algorithms and operations presented herein are not inherentlyrelated to any particular computer or other apparatus. Variousgeneral-purpose systems may also be used with programs in accordancewith the teachings herein, or it may prove convenient to construct morespecialized apparatuses to perform the required method steps. Therequired structure for a variety of these systems will be apparent tothose of skill in the art, along with equivalent variations. Inaddition, the present disclosure is not described with reference to anyparticular programming language. It is appreciated that a variety ofprogramming languages may be used to implement the teachings of thepresent disclosure as described herein, and any references to specificlanguages are provided for disclosure of enablement and best mode of thepresent invention.

The present disclosure is well suited to a wide variety of computernetwork systems over numerous topologies. Within this field, theconfiguration and management of large networks comprise storage devicesand computers that are communicatively coupled to dissimilar computersand storage devices over a network, such as the Internet.

The foregoing description of the embodiments has been provided forpurposes of illustration and description. It is not intended to beexhaustive or to limit the disclosure. Individual elements or featuresof a particular embodiment are generally not limited to that particularembodiment, but, where applicable, are interchangeable and can be usedin a selected embodiment, even if not specifically shown or described.The same may also be varied in many ways. Such variations are not to beregarded as a departure from the disclosure, and all such modificationsare intended to be included within the scope of the disclosure.

What is claimed is:
 1. A computer-implemented method, comprising:establishing a video chat session between first and second computingdevices via a network, the first computing device being associated witha user; receiving, by the first computing device, video data for thevideo chat session, the video data having been generated at the firstand second computing devices; displaying, on a display of the firstcomputing device, a video chat window including video chat sub-windowsdisplaying the video data generated at the first and second computingdevices; and in response to a level of interaction by the user with thevideo chat window that is less than a threshold: modifying, by the firstcomputing device, a size of the video chat window to obtain a firstmodified video chat window including first modified video chatsub-windows; and displaying, on the display, the video data in the firstmodified video chat sub-windows within the first modified video chatwindow.
 2. The computer-implemented method of claim 1, wherein the levelof interaction by the user with the video chat window that is less thanthe threshold includes at least one of (i) a level of input by the uservia at least a physical input device associated with the first computingdevice that is less than a first threshold for longer than a firstperiod, (ii) a level of detected speech by the user that is less than asecond threshold for longer than a second period, (iii) a level of eyecontact by the user on the video chat window that is less than a thirdthreshold for longer than a third period, and (iv) the user opening anew web browser tab.
 3. The computer-implemented method of claim 1,further comprising in response to a level of interaction by the userwith the first modified video chat window satisfying the threshold oranother different threshold: modifying, by the first computing device, asize of the first modified video chat window to obtain a second modifiedvideo chat window comprising second modified video chat sub-windows; anddisplaying, on the display, the video data in the second modified videochat sub-windows within the second modified video chat window.
 4. Thecomputer-implemented method of claim 3, wherein the level of interactionby the user with the first modified video chat window satisfying thethreshold or the another different threshold includes at least one of(i) a level of input by the user via at least a physical input deviceassociated with the first computing device satisfying a first thresholdfor longer than a first period, (ii) a level of detected speech by theuser satisfying a second threshold for longer than a second period, and(iii) a level of eye contact by the user on the first modified videochat window satisfying a third threshold for longer than a third period.5. The computer-implemented method of claim 3, wherein modifying thesize of the video chat window comprises shrinking the video chat windowto obtain the first modified video chat window, and wherein modifyingthe size of the first modified video chat window comprises enlarging thefirst modified video chat window to obtain the second modified videochat window.
 6. The computer-implemented method of claim 5, wherein thevideo chat window occupies a first portion of the display, wherein thefirst modified video chat window occupies a second portion of thedisplay that is less than the first portion, and wherein the secondmodified video chat window occupies a third portion of the display thatis greater than the second portion.
 7. The computer-implemented methodof claim 6, wherein the second modified video chat window is the samesize as the video chat window.
 8. A first computing device including adisplay, one or more processors, and a non-transitory memory having aset of instructions stored thereon that, when executed by the one ormore processors, causes the first computing device to perform operationscomprising: establishing a video chat session between first and secondcomputing devices via a network, the first computing device beingassociated with a user; receiving video data for the video chat session,the video data having been generated at the first and second computingdevices; displaying, on the display, a video chat window including videochat sub-windows displaying the video data generated at the first andsecond computing devices; and in response to a level of interaction bythe user with the video chat window that is less than a threshold:modifying a size of the video chat window to obtain a first modifiedvideo chat window including first modified video chat sub-windows; anddisplaying, on the display, the video data in the first modified videochat sub-windows within the first modified video chat window.
 9. Thefirst computing device of claim 8, wherein the level of interaction bythe user with the video chat window that is less than the thresholdincludes at least one of (i) a level of input by the user via at least aphysical input device associated with the first computing device that isless than a first threshold for longer than a first period, (ii) a levelof detected speech by the user that is less than a second threshold forlonger than a second period, (iii) a level of eye contact by the user onthe video chat window that is less than a third threshold for longerthan a third period, and (iv) the user opening a new web browser tab.10. The first computing device of claim 8, wherein the operationsfurther comprise in response to a level of interaction by the user withthe first modified video chat window satisfying the threshold or anotherdifferent threshold: modifying a size of the first modified video chatwindow to obtain a second modified video chat window comprising secondmodified video chat sub-windows; and displaying, on the display, thevideo data in the second modified video chat sub-windows within thesecond modified video chat window.
 11. The first computing device ofclaim 10, wherein the level of interaction by the user with the firstmodified video chat window satisfying the threshold or the anotherdifferent threshold includes at least one of (i) a level of input by theuser via at least a physical input device associated with the firstcomputing device satisfying a first threshold for longer than a firstperiod, (ii) a level of detected speech by the user satisfying a secondthreshold for longer than a second period, and (iii) eye contact by theuser on the first modified video chat window satisfying a thirdthreshold for longer than a third period.
 12. The first computing deviceof claim 10, wherein modifying the size of the video chat windowcomprises shrinking the video chat window to obtain the first modifiedvideo chat window, and wherein modifying the size of the first modifiedvideo chat window comprises enlarging the first modified video chatwindow to obtain the second modified video chat window.
 13. The firstcomputing device of claim 12, wherein the video chat window occupies afirst portion of the display, wherein the first modified video chatwindow occupies a second portion of the display that is less than thefirst portion, and wherein the second modified video chat windowoccupies a third portion of the display that is greater than the secondportion.
 14. The first computing device of claim 13, wherein the secondmodified video chat window is the same size as the video chat window.15. A non-transitory computer-readable medium having a set ofinstructions stored thereon that, when executed by one or moreprocessors of a first computing device, causes the first computingdevice to perform operations comprising: establishing a video chatsession between the first computing device and a second computing devicevia a network, the first computing device being associated with a user;receiving video data for the video chat session, the video data havingbeen generated at the first and second computing devices; displaying, ona display, a video chat window including video chat sub-windowsdisplaying the video data generated at the first and second computingdevices; and in response to a level of interaction by the user with thevideo chat window that is less than a threshold: modifying a size of thevideo chat window to obtain a first modified video chat window includingfirst modified video chat sub-windows; and displaying, on the display,the video data in the first modified video chat sub-windows within thefirst modified video chat window.
 16. The computer-readable medium ofclaim 15, wherein the level of interaction by the user with the videochat window that is less than the threshold includes at least one of (i)a level of input by the user via at least a physical input deviceassociated with the first computing device that is less than a firstthreshold for longer than a first period, (ii) a level of detectedspeech by the user that is less than a second threshold for longer thana second period, (iii) a level of eye contact by the user on the videochat window that is less than a third threshold for longer than a thirdperiod, and (iv) the user opening a new web browser tab.
 17. Thecomputer-readable medium of claim 15, wherein the operations furthercomprise in response to a level of interaction by the user with thefirst modified video chat window satisfying the threshold or anotherdifferent threshold: modifying a size of the first modified video chatwindow to obtain a second modified video chat window comprising secondmodified video chat sub-windows; and displaying, on the display, thevideo data in the second modified video chat sub-windows within thesecond modified video chat window.
 18. The computer-readable medium ofclaim 17, wherein the level of interaction by the user with the firstmodified video chat window satisfying the threshold or the anotherdifferent threshold includes at least one of (i) a level of input by theuser via at least a physical input device associated with the firstcomputing device satisfying a first threshold for longer than a firstperiod, (ii) a level of detected speech by the user satisfying a secondthreshold for longer than a second period, and (iii) eye contact by theuser on the first modified video chat window satisfying a first thirdthreshold for longer than a third period.
 19. The computer-readablemedium of claim 17, wherein modifying the size of the video chat windowcomprises enlarging the video chat window to obtain the first modifiedvideo chat window, and wherein modifying the size of the first modifiedvideo chat window comprises shrinking the first modified video chatwindow to obtain the second modified video chat window.
 20. Thecomputer-readable medium of claim 19, wherein the video chat windowoccupies a first portion of the display, wherein the first modifiedvideo chat window occupies a second portion of the display that isgreater than the first portion, and wherein the second modified videochat window occupies a third portion of the display that is less thanthe second portion.